package com.yfp.operation.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yfp.operation.domain.MachineDO;

import java.util.List;

/**
 *
 * @description 针对表【machine(设备机器表)】的数据库操作Service
 * @createDate 2024-04-17 15:55:42
 */
public interface MachineService extends IService<MachineDO> {

    /**
     * 根据用户id查询运营设备列表
     *
     * @param userId 用户id
     * @return 设备列表
     */
    List<MachineDO> getMachineOperationByUserId(Long userId);

    /**
     * 根据用户id查询投资人设备列表
     *
     * @param userId 用户id
     * @return 设备列表
     */
    List<MachineDO> getMachineInvestorByUserId(Long userId);

    /**
     * 根据用户id和设备id查询运营设备
     *
     * @param userId    用户id
     * @param machineId 设备id
     * @return 设备
     */
    MachineDO getMachineOperationByUserIdAndMachineId(Long userId, String machineId);

    /**
     * 检测设备故障
     *
     * @return 设备列表
     */
    List<MachineDO> detectDeviceFaults();

    /**
     * 获取设备类型
     *
     * @param machineId
     * @return
     */
    Integer getMachineType(String machineId);

    List<MachineDO> getDisconnection();

    MachineDO getMachine(String machineId);

    /**
     * 检测设备套餐制作是否异常
     */
    void checkMachineMealAnomaly();

    List<String> machineNames(List<String> machineIds);

    List<MachineDO> findAll();

    /**
     * 获取设备列表
     *
     * @param machineDO
     * @return
     */
    List<MachineDO> listMachine(MachineDO machineDO);

    /**
     * 根据位置id获取设备列表
     *
     * @param positionIds
     * @return
     */
    List<MachineDO> listMachineByPositionIds(List<String> positionIds);
}
